CREATE PROCEDURE [dbo].[asi_DocumentMove]
@folderHierarchyKey uniqueidentifier,
@key uniqueidentifier
AS
BEGIN
DECLARE
@documentVersionKey uniqueidentifier,
@newHierarchyKey uniqueidentifier,
@oldHierarchyKey uniqueidentifier,
@childDocumentVersionKey uniqueidentifier,
@documentTypeCode nchar(3)
SELECT TOP 1
@oldHierarchyKey = a.HierarchyKey,
@documentTypeCode = b.DocumentTypeCode,
@documentVersionKey = b.DocumentVersionKey
FROM Hierarchy a INNER JOIN DocumentMain b ON a.UniformKey = b.DocumentVersionKey
WHERE b.DocumentVersionKey = @key
OR a.HierarchyKey = @key
ORDER BY b.CreatedOn DESC
exec asi_DocumentLinkDocumentOut @folderHierarchyKey, @documentVersionKey,@newHierarchyKey OUTPUT
SELECT @newHierarchyKey AS HierarchyKey
IF @documentTypeCode = 'FOL'
BEGIN
SET ROWCOUNT 1
SELECT @childDocumentVersionKey = UniformKey FROM Hierarchy WHERE ParentHierarchyKey = @oldHierarchyKey
WHILE @@ROWCOUNT = 1
BEGIN
SET ROWCOUNT 0
exec asi_DocumentMove @newHierarchyKey, @childDocumentVersionKey
SET ROWCOUNT 1
SELECT @childDocumentVersionKey = UniformKey FROM Hierarchy WHERE ParentHierarchyKey = @oldHierarchyKey
END
SET ROWCOUNT 0
END
DELETE FROM Hierarchy WHERE HierarchyKey = @oldHierarchyKey
END
GO